package com.crm.model.vo.returnMoney;

import com.crm.common.util.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;


@Data
public class ReturnMoneyVO {

    private String returnMoneyId;
    //流水号
    private String serial;
    //到款时间
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    private Date arriveTime;
    //到款金额
    private BigDecimal arriveMoney;
    //到款单位名称
    private String arriveUnitName;
    //到款类型
    private Integer arriveType;
    //到款编号
    private String arriveNum;
    //到款方式 0银行汇款 1现金
    private Integer arriveMethod;
    //到款是否作废（0 否 1 是）
    private Integer arriveIsAbolish;
    //到款账号类型 0总公司账户 1分公司账户
    private Integer arriveAccountType;
    //付款单位
    private String paymentUnit;
    //付款单位名称
    private String paymentUnitName;
    //付款账号
    private String paymentAccount;
    //付款银行
    private String paymentBank;
    //是否挂起（0否 1是）
    private Integer contractStatus;
    //续费合同开始日期
    private String renewContractStartTime;
    //业绩换算比例
    private BigDecimal scoreConvertRatio;
    //业绩金额
    private BigDecimal scoreMoney;
    //退款金额
    private BigDecimal backMoney;
    //会员类型（0会员 1非会员）
    private Integer vipType;
    //是否记录会员业绩（0否 1是）
    private Integer isRecordScore;
    //是否退款（0否 1是）
    private Integer isBack;
    //退款日期
    private String backDate;
    //是否关联来的数据 0否 1是
    private Integer shiftType;
    //关联之前的回款id
    private String shiftReturnMoneyId;
    //提成发放状态（0未发放 1已发放）
    private Integer royaltyStatus;
    //提成金额
    private BigDecimal royaltyMoney;
    //提成录入时间
    private Date royaltyRecordTime;
    //是否作废（0否 1是）
    private Integer isAbolish;
    //来源渠道
    private String source;
    //所属合同
    private String contractId;
    //所属客户
    private String customerId;
    //客户名称
    private String customerName;
    //所属订单
    private String orderId;
    //订单状态  1:等待回款;2:已完成;3:作废;4:部分回款
    private String orderStatus;
    //订单实际金额
    private BigDecimal orderActualTotalAmount;
    //所属业务员
    private String salesmanId;
    //业务员名称(所有人)
    private String salesmanName;
    //所属分公司
    private String filialeId;

    //分公司名称
    private String filialeName;
    //是否检验
    private Integer isCheck;
    //备注
    private String remark;
    //产品名称
    private String productName;
    //产品ID
    private String productId;
    //产品ID
    private String productNumber;
    //产品分类:0:非会员:1:会员
    private String productCategories;
    //finish Id
    private String finishOrderProductId;
    //产品号
    private String finishOrderProductNum;
    //创建人
    private String createBy;
    //创建人名称(录入人)
    private String createByName;
    //创建时间
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    private Date createTm;


    private String updateBy;

    //修改人名称
    private String updateByName;

    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    private Date updateTm;

    private Integer delFlag;

    private Integer dataSource;

    private Integer memberErrorData;

    private Integer examState;//审核状态（0-正常，1-审核）

    private Integer returnStatus;//回款状态：0-预回款，1-正常

    private Integer closeStatus;//是否封账 （0-否 1-是）

    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date applyTime;

    private String applyPeopleName;  //申请人

    private String bankOrderId;  //流水订单关联id

    public String getRoyaltyRecordTime() {
        if (Objects.nonNull(royaltyRecordTime)){
            return DateUtil.formatDateTime(royaltyRecordTime);
        }
        return null;
    }

    /*public String getCreateTm() {
        return DateUtil.formatDateTime(createTm);
    }

    public String getUpdateTm() {
        if (Objects.nonNull(updateTm)){
            return DateUtil.formatDateTime(updateTm);
        }
        return null;
    }*/
}
